﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;


class CKey
{
    Keys KeyCode;
    bool Last;
    bool Current;

    public bool Pressed;
    public bool Released;
    public bool Hold;
    public bool Untouched;

    public CKey(Keys key)
    {
        KeyCode = key;
        Current = Last = Pressed
        = Released = false;
    }

    public void Update()
    {
        KeyboardState keybState = Keyboard.GetState();

        Last = Current;
        Current = keybState.IsKeyDown(KeyCode);
        Pressed = (Current && !Last);
        Released = (!Current && Last);
        Hold = (Current && Last);
        Untouched = (!Current && !Last);
    }
}

public enum MouseButtons
    {
        LeftButton,
        MiddleButton,
        RightButton,
        ExtraButton1,
        ExtraButton2
    }


class CMouseButton
{
    MouseButtons KeyCode;
    bool Last;
    bool Current;

    public bool Pressed;
    public bool Released;
    public bool Hold;
    public bool Untouched;

    public CMouseButton(MouseButtons key)
    {
        KeyCode = key;
        Current = Last = Pressed
        = Released = false;
    }

    public void Update()
    {
       
        
        Last = Current;
        Current = IsDown(KeyCode);
        Pressed = (Current && !Last);
        Released = (!Current && Last);
        Hold = (Current && Last);
        Untouched = (!Current && !Last);
    }

    bool IsDown(MouseButtons button)
    {
        MouseState mouseState = Mouse.GetState();
        switch (button)
        {
            case MouseButtons.LeftButton:
                return mouseState.LeftButton == ButtonState.Pressed;
            case MouseButtons.MiddleButton:
                return mouseState.MiddleButton == ButtonState.Pressed;
            case MouseButtons.RightButton:
                return mouseState.RightButton == ButtonState.Pressed;
            case MouseButtons.ExtraButton1:
                return mouseState.XButton1 == ButtonState.Pressed;
            case MouseButtons.ExtraButton2:
                return mouseState.XButton2 == ButtonState.Pressed;
            default:
                return false;
        }
    }

}

class CMouse
{
    public static CMouseButton  LeftButton = new CMouseButton(MouseButtons.LeftButton);
    public static CMouseButton  MiddleButton = new CMouseButton(MouseButtons.MiddleButton);
    public static CMouseButton  RightButton = new CMouseButton(MouseButtons.RightButton);
    public static CMouseButton  ExtraButton1 = new CMouseButton (MouseButtons.ExtraButton1);
    public static CMouseButton  ExtraButton2 = new CMouseButton (MouseButtons.ExtraButton2);

    public static Vector2 Position = new Vector2(0,0);
    public static Vector2 OldPosition = new Vector2(0, 0);
    public static Vector2 PositionDelta= new Vector2(0,0);

    public static float ScrollWheelValue = 0;
    public static float OldScrollWheelValue = 0;
    public static float ScrollWheelDelta = 0;

    public static void Update()
    {
        LeftButton.Update(); 
        MiddleButton.Update(); 
        RightButton.Update(); 
        ExtraButton1.Update();
        ExtraButton2.Update();

        MouseState mouseState = Mouse.GetState();
        
        OldPosition = Position;
        Position = new Vector2(mouseState.X, mouseState.Y);
        PositionDelta = Position - OldPosition;

        OldScrollWheelValue = ScrollWheelValue;
        ScrollWheelValue = mouseState.ScrollWheelValue;
        ScrollWheelDelta = ScrollWheelValue - OldScrollWheelValue;

    }
}

class CKeyBoard
{
    //KEY-DISCRIPTION
    //A 	A key
    //Add 	Add key
    //Apps 	Applications key
    //Attn 	Attn key
    //B 	B key
    //Back 	BACKSPACE key
    //BrowserBack 	Windows 2000/XP: Browser Back key
    //BrowserFavorites 	Windows 2000/XP: Browser Favorites key
    //BrowserForward 	Windows 2000/XP: Browser Forward key
    //BrowserHome 	Windows 2000/XP: Browser Start and Home key
    //BrowserRefresh 	Windows 2000/XP: Browser Refresh key
    //BrowserSearch 	Windows 2000/XP: Browser Search key
    //BrowserStop 	Windows 2000/XP: Browser Stop key
    //C 	C key
    //CapsLock 	CAPS LOCK key
    //ChatPadGreen 	Green ChatPad key
    //ChatPadOrange 	Orange ChatPad key
    //Crsel 	CrSel key
    //D 	D key
    //D0 	Used for miscellaneous characters; it can vary by keyboard.
    //D1 	Used for miscellaneous characters; it can vary by keyboard.
    //D2 	Used for miscellaneous characters; it can vary by keyboard.
    //D3 	Used for miscellaneous characters; it can vary by keyboard.
    //D4 	Used for miscellaneous characters; it can vary by keyboard.
    //D5 	Used for miscellaneous characters; it can vary by keyboard.
    //D6 	Used for miscellaneous characters; it can vary by keyboard.
    //D7 	Used for miscellaneous characters; it can vary by keyboard.
    //D8 	Used for miscellaneous characters; it can vary by keyboard.
    //D9 	Used for miscellaneous characters; it can vary by keyboard.
    //Decimal 	Decimal key
    //Delete 	DEL key
    //Divide 	Divide key
    //Down 	DOWN ARROW key
    //E 	E key
    //End 	END key
    //Enter 	ENTER key
    //EraseEof 	Erase EOF key
    //Escape 	ESC key
    //Execute 	EXECUTE key
    //Exsel 	ExSel key
    //F 	F key
    //F1 	F1 key
    //F10 	F10 key
    //F11 	F11 key
    //F12 	F12 key
    //F13 	F13 key
    //F14 	F14 key
    //F15 	F15 key
    //F16 	F16 key
    //F17 	F17 key
    //F18 	F18 key
    //F19 	F19 key
    //F2 	F2 key
    //F20 	F20 key
    //F21 	F21 key
    //F22 	F22 key
    //F23 	F23 key
    //F24 	F24 key
    //F3 	F3 key
    //F4 	F4 key
    //F5 	F5 key
    //F6 	F6 key
    //F7 	F7 key
    //F8 	F8 key
    //F9 	F9 key
    //G 	G key
    //H 	H key
    //Help 	HELP key
    //Home 	HOME key
    //I 	I key
    //ImeConvert 	IME Convert key
    //ImeNoConvert 	IME NoConvert key
    //Insert 	INS key
    //J 	J key
    //K 	K key
    //Kana 	Kana key on Japanese keyboards
    //Kanji 	Kanji key on Japanese keyboards
    //L 	L key
    //LaunchApplication1 	Windows 2000/XP: Start Application 1 key
    //LaunchApplication2 	Windows 2000/XP: Start Application 2 key
    //LaunchMail 	Windows 2000/XP: Start Mail key
    //Left 	LEFT ARROW key
    //LeftAlt 	Left ALT key
    //LeftControl 	Left CONTROL key
    //LeftShift 	Left SHIFT key
    //LeftWindows 	Left Windows key
    //M 	M key
    //MediaNextTrack 	Windows 2000/XP: Next Track key
    //MediaPlayPause 	Windows 2000/XP: Play/Pause Media key
    //MediaPreviousTrack 	Windows 2000/XP: Previous Track key
    //MediaStop 	Windows 2000/XP: Stop Media key
    //Multiply 	Multiply key
    //N 	N key
    //None 	Reserved
    //NumLock 	NUM LOCK key
    //NumPad0 	Numeric keypad 0 key
    //NumPad1 	Numeric keypad 1 key
    //NumPad2 	Numeric keypad 2 key
    //NumPad3 	Numeric keypad 3 key
    //NumPad4 	Numeric keypad 4 key
    //NumPad5 	Numeric keypad 5 key
    //NumPad6 	Numeric keypad 6 key
    //NumPad7 	Numeric keypad 7 key
    //NumPad8 	Numeric keypad 8 key
    //NumPad9 	Numeric keypad 9 key
    //O 	O key
    //Oem8 	Used for miscellaneous characters; it can vary by keyboard.
    //OemAuto 	OEM Auto key
    //OemBackslash 	Windows 2000/XP: The OEM angle bracket or backslash key on the RT 102 key keyboard
    //OemClear 	CLEAR key
    //OemCloseBrackets 	Windows 2000/XP: The OEM close bracket key on a US standard keyboard
    //OemComma 	Windows 2000/XP: For any country/region, the ',' key
    //OemCopy 	OEM Copy key
    //OemEnlW 	OEM Enlarge Window key
    //OemMinus 	Windows 2000/XP: For any country/region, the '-' key
    //OemOpenBrackets 	Windows 2000/XP: The OEM open bracket key on a US standard keyboard
    //OemPeriod 	Windows 2000/XP: For any country/region, the '.' key
    //OemPipe 	Windows 2000/XP: The OEM pipe key on a US standard keyboard
    //OemPlus 	Windows 2000/XP: For any country/region, the '+' key
    //OemQuestion 	Windows 2000/XP: The OEM question mark key on a US standard keyboard
    //OemQuotes 	Windows 2000/XP: The OEM singled/double quote key on a US standard keyboard
    //OemSemicolon 	Windows 2000/XP: The OEM Semicolon key on a US standard keyboard
    //OemTilde 	Windows 2000/XP: The OEM tilde key on a US standard keyboard
    //P 	P key
    //Pa1 	PA1 key
    //PageDown 	PAGE DOWN key
    //PageUp 	PAGE UP key
    //Pause 	PAUSE key
    //Play 	Play key
    //Print 	PRINT key
    //PrintScreen 	PRINT SCREEN key
    //ProcessKey 	Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key
    //Q 	Q key
    //R 	R key
    //Right 	RIGHT ARROW key
    //RightAlt 	Right ALT key
    //RightControl 	Right CONTROL key
    //RightShift 	Right SHIFT key
    //RightWindows 	Right Windows key
    //S 	S key
    //Scroll 	SCROLL LOCK key
    //Select 	SELECT key
    //SelectMedia 	Windows 2000/XP: Select Media key
    //Separator 	Separator key
    //Sleep 	Computer Sleep key
    //Space 	SPACEBAR
    //Subtract 	Subtract key
    //T 	T key
    //Tab 	TAB key
    //U 	U key
    //Up 	UP ARROW key
    //V 	V key
    //VolumeDown 	Windows 2000/XP: Volume Down key
    //VolumeMute 	Windows 2000/XP: Volume Mute key
    //VolumeUp 	Windows 2000/XP: Volume Up key
    //W 	W key
    //X 	X key
    //Y 	Y key
    //Z 	Z key
    //Zoom 	Zoom key


    public static CKey A = new  CKey(Keys.A);
    public static CKey Add = new  CKey(Keys.Add);
    public static CKey Attn = new  CKey(Keys.Attn);
    public static CKey Apps = new  CKey(Keys.Apps);
    public static CKey B = new  CKey(Keys.B);
    public static CKey Back = new  CKey(Keys.Back);
    public static CKey BrowserBack = new  CKey(Keys.BrowserBack);
    public static CKey BrowserFavorites = new  CKey(Keys.BrowserFavorites);
    public static CKey BrowserForward = new  CKey(Keys.BrowserForward);
    public static CKey BrowserHome = new  CKey(Keys.BrowserHome);
    public static CKey BrowserRefresh = new  CKey(Keys.BrowserRefresh);
    public static CKey BrowserSearch = new  CKey(Keys.BrowserSearch);
    public static CKey BrowserStop = new  CKey(Keys.BrowserStop);
    public static CKey C = new  CKey(Keys.C);
    public static CKey CapsLock = new  CKey(Keys.CapsLock);
    public static CKey ChatPadOrange = new  CKey(Keys.ChatPadOrange);
    public static CKey ChatPadGreen = new CKey(Keys.ChatPadGreen);
    public static CKey Crsel = new  CKey(Keys.Crsel);
    public static CKey D = new  CKey(Keys.D);
    public static CKey D0 = new  CKey(Keys.D0);
    public static CKey D1 = new  CKey(Keys.D1);
    public static CKey D2 = new  CKey(Keys.D2);
    public static CKey D3 = new  CKey(Keys.D3);
    public static CKey D4 = new  CKey(Keys.D4);
    public static CKey D5 = new  CKey(Keys.D5);
    public static CKey D6 = new  CKey(Keys.D6);
    public static CKey D7 = new CKey(Keys.D7);
    public static CKey D8 = new  CKey(Keys.D8);
    public static CKey D9 = new  CKey(Keys.D9);
    public static CKey Decimal = new  CKey(Keys.Decimal);
    public static CKey Delete = new  CKey(Keys.Delete);
    public static CKey Divide = new  CKey(Keys.Divide);
    public static CKey Down = new  CKey(Keys.Down);
    public static CKey E = new  CKey(Keys.E);
    public static CKey End = new  CKey(Keys.End);
    public static CKey Enter = new  CKey(Keys.Enter);
    public static CKey EraseEof = new  CKey(Keys.EraseEof);
    public static CKey Escape = new  CKey(Keys.Escape);
    public static CKey Execute = new  CKey(Keys.Execute);
    public static CKey Exsel = new  CKey(Keys.Exsel);
    public static CKey F = new  CKey(Keys.F);
    public static CKey F1 = new  CKey(Keys.F1);
    public static CKey F2 = new  CKey(Keys.F2);
    public static CKey F3 = new  CKey(Keys.F3);
    public static CKey F4 = new  CKey(Keys.F4);
    public static CKey F5 = new  CKey(Keys.F5);
    public static CKey F6 = new  CKey(Keys.F6);
    public static CKey F7 = new  CKey(Keys.F7);
    public static CKey F8 = new CKey(Keys.F8);
    public static CKey F9 = new  CKey(Keys.F9);
    public static CKey F10 = new  CKey(Keys.F10);
    public static CKey F11 = new  CKey(Keys.F11);
    public static CKey F12 = new  CKey(Keys.F12);
    public static CKey F13 = new  CKey(Keys.F12);
    public static CKey F14 = new  CKey(Keys.F13);
    public static CKey F15 = new  CKey(Keys.F14);
    public static CKey F16 = new  CKey(Keys.F15);
    public static CKey F17 = new  CKey(Keys.F16);
    public static CKey F18 = new  CKey(Keys.F17);
    public static CKey F19 = new  CKey(Keys.F18);
    public static CKey F20 = new  CKey(Keys.F20);
    public static CKey F21 = new  CKey(Keys.F21);
    public static CKey F22 = new  CKey(Keys.F22);
    public static CKey F23 = new  CKey(Keys.F23);
    public static CKey F24 = new  CKey(Keys.F24);
    public static CKey G = new  CKey(Keys.G);
    public static CKey H = new  CKey(Keys.H);
    public static CKey Help = new  CKey(Keys.Help);
    public static CKey Home = new  CKey(Keys.Home);
    public static CKey I = new  CKey(Keys.I);
    public static CKey ImeConvert = new  CKey(Keys.ImeConvert);
    public static CKey ImeNoConvert = new  CKey(Keys.ImeNoConvert);
    public static CKey Insert = new  CKey(Keys.Insert);
    public static CKey J = new  CKey(Keys.J);
    public static CKey K = new  CKey(Keys.K);
    public static CKey Kana = new  CKey(Keys.Kana);
    public static CKey Kanji = new  CKey(Keys.Kanji);
    public static CKey L = new  CKey(Keys.L);
    public static CKey LaunchApplication1 = new  CKey(Keys.LaunchApplication1);
    public static CKey LaunchApplication2 = new  CKey(Keys.LaunchApplication2);
    public static CKey LaunchMail = new  CKey(Keys.LaunchMail);
    public static CKey Left = new  CKey(Keys.Left);
    public static CKey LeftAlt = new  CKey(Keys.LeftAlt);
    public static CKey LeftControl = new  CKey(Keys.LeftControl);
    public static CKey LeftShift = new  CKey(Keys.LeftShift);
    public static CKey LeftWindows = new  CKey(Keys.LeftWindows);
    public static CKey M = new  CKey(Keys.M);
    public static CKey MediaNextTrack = new  CKey(Keys.MediaNextTrack);
    public static CKey MediaPlayPause = new  CKey(Keys.MediaPlayPause);
    public static CKey MediaPreviousTrack = new  CKey(Keys.MediaPreviousTrack);
    public static CKey MediaStop = new  CKey(Keys.MediaStop);
    public static CKey Multiply = new  CKey(Keys.Multiply);
    public static CKey N = new  CKey(Keys.N);
    public static CKey None = new  CKey(Keys.None);
    public static CKey NumLock = new  CKey(Keys.NumLock);
    public static CKey NumPad0 = new  CKey(Keys.NumPad0);
    public static CKey NumPad1 = new  CKey(Keys.NumPad1);
    public static CKey NumPad2 = new  CKey(Keys.NumPad2);
    public static CKey NumPad3 = new  CKey(Keys.NumPad3);
    public static CKey NumPad4 = new  CKey(Keys.NumPad4);
    public static CKey NumPad5 = new  CKey(Keys.NumPad5);
    public static CKey NumPad6 = new  CKey(Keys.NumPad6);
    public static CKey NumPad7 = new  CKey(Keys.NumPad7);
    public static CKey NumPad8 = new  CKey(Keys.NumPad8);
    public static CKey NumPad9 = new  CKey(Keys.NumPad9);
    public static CKey O = new  CKey(Keys.O);
    public static CKey Oem8 = new  CKey(Keys.Oem8);
    public static CKey OemAuto = new  CKey(Keys.OemAuto);
    public static CKey OemBackslash = new  CKey(Keys.OemBackslash);
    public static CKey OemClear = new  CKey(Keys.OemClear);
    public static CKey OemCloseBrackets = new  CKey(Keys.OemCloseBrackets);
    public static CKey OemComma = new  CKey(Keys.OemComma);
    public static CKey OemCopy = new  CKey(Keys.OemCopy);
    public static CKey OemEnlW = new  CKey(Keys.OemEnlW);
    public static CKey OemMinus = new  CKey(Keys.OemMinus);
    public static CKey OemOpenBrackets = new  CKey(Keys.OemOpenBrackets);
    public static CKey OemPeriod = new  CKey(Keys.OemPeriod);
    public static CKey OemPipe = new  CKey(Keys.OemPipe);
    public static CKey OemPlus = new  CKey(Keys.OemPlus);
    public static CKey OemQuestion = new  CKey(Keys.OemQuestion);
    public static CKey OemQuotes = new CKey(Keys.OemQuotes);
    public static CKey OemSemicolon = new  CKey(Keys.OemSemicolon);
    public static CKey OemTilde = new  CKey(Keys.OemTilde);
    public static CKey P = new  CKey(Keys.P);
    public static CKey Pa1 = new  CKey(Keys.Pa1);
    public static CKey PageDown = new  CKey(Keys.PageDown);
    public static CKey Pause = new  CKey(Keys.Pause);
    public static CKey PageUp = new  CKey(Keys.PageUp);
    public static CKey Play = new  CKey(Keys.Play);
    public static CKey Print = new  CKey(Keys.Print);
    public static CKey PrintScreen = new  CKey(Keys.PrintScreen);
    public static CKey ProcessKey = new  CKey(Keys.ProcessKey);
    public static CKey Q = new  CKey(Keys.Q);
    public static CKey R = new  CKey(Keys.R);
    public static CKey Right = new  CKey(Keys.Right);
    public static CKey RightAlt = new  CKey(Keys.RightAlt);
    public static CKey RightControl = new  CKey(Keys.RightControl);
    public static CKey RightShift = new  CKey(Keys.RightShift);
    public static CKey RightWindows = new  CKey(Keys.RightWindows);
    public static CKey S = new  CKey(Keys.S);
    public static CKey Scroll = new  CKey(Keys.Scroll);
    public static CKey Select = new  CKey(Keys.Select);
    public static CKey SelectMedia = new  CKey(Keys.SelectMedia);
    public static CKey Separator = new  CKey(Keys.Separator);
    public static CKey Sleep = new  CKey(Keys.Sleep);
    public static CKey Space = new  CKey(Keys.Space);
    public static CKey Subtract = new  CKey(Keys.Subtract);
    public static CKey T = new  CKey(Keys.T);
    public static CKey Tab = new CKey(Keys.Tab);
    public static CKey U = new  CKey(Keys.U);
    public static CKey Up = new  CKey(Keys.Up);
    public static CKey V = new  CKey(Keys.V);
    public static CKey VolumeDown = new  CKey(Keys.VolumeDown);
    public static CKey VolumeMute = new  CKey(Keys.VolumeMute);
    public static CKey VolumeUp = new  CKey(Keys.VolumeUp);
    public static CKey W = new  CKey(Keys.W);
    public static CKey X = new  CKey(Keys.X);
    public static CKey Y = new  CKey(Keys.Y);
    public static CKey Z = new  CKey(Keys.Z);
    public static CKey Zoom = new  CKey(Keys.Zoom);



    public static void Update()
    {
        A.Update();
	    Add.Update();
	    Apps.Update();
	    Attn.Update();
	    B.Update();
	    Back.Update();
	    BrowserBack.Update();
	    BrowserFavorites.Update();
	    BrowserForward.Update();
	    BrowserHome.Update();
	    BrowserRefresh.Update();
	    BrowserSearch.Update();
	    BrowserStop.Update();
	    C.Update();
	    CapsLock.Update();
	    ChatPadGreen.Update();
	    ChatPadOrange.Update();
	    Crsel.Update();
	    D.Update();
	    D0.Update();
	    D1.Update();
	    D2.Update();
	    D3.Update();
	    D4.Update();
	    D5.Update();
	    D6.Update();
	    D7.Update();
	    D8.Update();
	    D9.Update();
	    Decimal.Update();
	    Delete.Update();
	    Divide.Update();
	    Down.Update();
	    E.Update();
	    End.Update();
	    Enter.Update();
	    EraseEof.Update();
	    Escape.Update();
	    Execute.Update();
	    Exsel.Update();
	    F.Update();
	    F1.Update();
	    F10.Update();
	    F11.Update();
	    F12.Update();
	    F13.Update();
	    F14.Update();
	    F15.Update();
	    F16.Update();
	    F17.Update();
	    F18.Update();
	    F19.Update();
	    F2.Update();
	    F20.Update();
	    F21.Update();
	    F22.Update();
	    F23.Update();
	    F24.Update();
	    F3.Update();
	    F4.Update();
	    F5.Update();
	    F6.Update();
	    F7.Update();
	    F8.Update();
	    F9.Update();
	    G.Update();
	    H.Update();
	    Help.Update();
	    Home.Update();
	    I.Update();
	    ImeConvert.Update();
	    ImeNoConvert.Update();
	    Insert.Update();
	    J.Update();
	    K.Update();
	    Kana.Update();
	    Kanji.Update();
	    L.Update();
        LaunchApplication1.Update();
	    LaunchApplication2 .Update();
	    LaunchMail.Update();
	    Left .Update();
	    LeftAlt .Update();
	    LeftControl .Update();
	    LeftShift .Update();
	    LeftWindows.Update();
	    M.Update();
	    MediaNextTrack.Update();
	    MediaPlayPause.Update();
	    MediaPreviousTrack.Update();
	    MediaStop.Update();
	    Multiply .Update();
	    N.Update();
	    None.Update();
	    NumLock.Update();
	    NumPad0.Update();
	    NumPad1.Update();
	    NumPad2.Update();
	    NumPad3.Update();
	    NumPad4.Update();
	    NumPad5.Update();
	    NumPad6.Update();
	    NumPad7.Update();
	    NumPad8.Update();
	    NumPad9.Update();
	    O.Update();
	    Oem8.Update();
	    OemAuto .Update();
	    OemBackslash .Update();
	    OemClear.Update();
	    OemCloseBrackets.Update();
	    OemComma .Update();
	    OemCopy .Update();
	    OemEnlW.Update();
	    OemMinus.Update();
	    OemOpenBrackets.Update();
	    OemPeriod.Update();
	    OemPipe.Update();
	    OemPlus.Update();
	    OemQuestion.Update();
	    OemQuotes.Update();
	    OemSemicolon.Update();
	    OemTilde.Update();
	    P.Update();
	    Pa1.Update();
	    PageDown.Update();
	    PageUp.Update();
	    Pause.Update();
	    Play.Update();
	    Print.Update();
	    PrintScreen.Update();
	    ProcessKey.Update();
	    Q.Update();
	    R.Update();
	    Right.Update();
	    RightAlt.Update();
	    RightControl.Update();
	    RightShift.Update();
	    RightWindows.Update();
	    S.Update();
	    Scroll.Update();
	    Select.Update();
	    SelectMedia.Update();
	    Separator.Update();
	    Sleep.Update();
	    Space.Update();
	    Subtract.Update();
	    T.Update();
	    Tab.Update();
	    U.Update();
	    Up.Update();
	    V.Update();
	    VolumeDown.Update();
	    VolumeMute.Update();
	    VolumeUp.Update();
	    W.Update();
	    X.Update();
	    Y.Update();
	    Z.Update();
	    Zoom.Update();
       }
}